Crate leptos_axum

source ·
Expand description

Provides functions to easily integrate Leptos with Axum.

§JS Fetch Integration

The leptos_axum integration supports running in JavaScript-hosted WebAssembly runtimes, e.g., running inside Deno, Cloudflare Workers, or other JS environments. To run in this environment, you need to disable the default feature set and enable the wasm feature on leptos_axum in your Cargo.toml.

leptos_axum = { version = "0.6.0", default-features = false, features = ["wasm"] }

§Features

  • default: supports running in a typical native Tokio/Axum environment
  • wasm: with default-features = false, supports running in a JS Fetch-based environment
  • nonce: activates Leptos features that automatically provide a CSP Nonce via context
  • experimental-islands: activates Leptos islands mode

§Important Note

Prior to 0.5, using default-features = false on leptos_axum simply did nothing. Now, it actively disables features necessary to support the normal native/Tokio runtime environment we create. This can generate errors like the following, which don’t point to an obvious culprit: spawn_localcalled from outside of atask::LocalSet If you are not using the wasm feature, do not set default-features = false on this package.

§More information

For more details on how to use the integrations, see the examples directory in the Leptos repository.

Structs§

  • Allows you to override details of the HTTP response like the status code and add Headers/Cookies.
  • This struct lets you define headers and override the status of the Response from an Element or a Server Function Typically contained inside of a ResponseOptions. Setting this is useful for cookies and custom responses.

Traits§

  • This trait allows one to pass a list of routes and a render function to Axum’s router, letting us avoid having to use wildcards or manually define all routes in multiple places.

Functions§

  • TODO docs
  • A helper to make it easier to use Axum extractors in server functions.
  • A helper to make it easier to use Axum extractors in server functions. This function is compatible with extractors that require access to State.
  • Decomposes an HTTP request into its parts, allowing you to read its headers and other data without consuming the body. Creates a new Request from the original parts for further processing
  • Generates a list of all routes defined in Leptos’s Router in your app. We can then use this to automatically create routes in Axum’s Router without having to use wildcard matching or fallbacks. Takes in your root app Element as an argument so it can walk you app tree. This version is tailored to generate Axum compatible paths.
  • Generates a list of all routes defined in Leptos’s Router in your app. We can then use this to automatically create routes in Axum’s Router without having to use wildcard matching or fallbacks. Takes in your root app Element as an argument so it can walk you app tree. This version is tailored to generate Axum compatible paths. Adding excluded_routes to this function will stop .leptos_routes() from generating a route for it, allowing a custom handler. These need to be in Axum path format
  • Generates a list of all routes defined in Leptos’s Router in your app. We can then use this to automatically create routes in Axum’s Router without having to use wildcard matching or fallbacks. Takes in your root app Element as an argument so it can walk you app tree. This version is tailored to generate Axum compatible paths. Adding excluded_routes to this function will stop .leptos_routes() from generating a route for it, allowing a custom handler. These need to be in Axum path format
  • Generates a list of all routes defined in Leptos’s Router in your app. We can then use this to automatically create routes in Axum’s Router without having to use wildcard matching or fallbacks. Takes in your root app Element as an argument so it can walk you app tree. This version is tailored to generate Axum compatible paths. Adding excluded_routes to this function will stop .leptos_routes() from generating a route for it, allowing a custom handler. These need to be in Axum path format Additional context will be provided to the app Element.
  • Generates a list of all routes defined in Leptos’s Router in your app. We can then use this to automatically create routes in Axum’s Router without having to use wildcard matching or fallbacks. Takes in your root app Element as an argument so it can walk you app tree. This version is tailored to generate Axum compatible paths.
  • An Axum handlers to listens for a request with Leptos server function arguments in the body, run the server function if found, and return the resulting Response.
  • An Axum handlers to listens for a request with Leptos server function arguments in the body, run the server function if found, and return the resulting Response.
  • Provides an easy way to redirect the user from within a server function. Mimicking the Remix redirect(), it sets a StatusCode of 302 and a LOCATION header with the provided value. If looking to redirect from the client, leptos_router::use_navigate() should be used instead
  • Returns an Axum Handler that listens for a GET request and tries to route it using leptos_router, asynchronously rendering an HTML page after all async Resources have loaded.
  • Returns an Axum Handler that listens for a GET request and tries to route it using leptos_router, asynchronously rendering an HTML page after all async Resources have loaded.
  • Returns an Axum Handler that listens for a GET request and tries to route it using leptos_router, asynchronously rendering an HTML page after all async Resources have loaded.
  • Returns an Axum Handler that listens for a GET request and tries to route it using leptos_router, serving an HTML stream of your application.
  • Returns an Axum Handler that listens for a GET request and tries to route it using leptos_router, serving an in-order HTML stream of your application. This stream will pause at each <Suspense/> node and wait for it to resolve before sending down its HTML. The app will become interactive once it has fully loaded.
  • Returns an Axum Handler that listens for a GET request and tries to route it using leptos_router, serving an in-order HTML stream of your application. This stream will pause at each <Suspense/> node and wait for it to resolve before sending down its HTML. The app will become interactive once it has fully loaded.
  • Returns an Axum Handler that listens for a GET request and tries to route it using leptos_router, serving an HTML stream of your application.
  • Returns an Axum Handler that listens for a GET request and tries to route it using leptos_router, serving an HTML stream of your application.
  • Returns an Axum Handler that listens for a GET request and tries to route it using leptos_router, serving an HTML stream of your application. The difference between calling this and render_app_to_stream_with_context() is that this one respects the SsrMode on each Route and thus requires Vec<RouteListing> for route checking. This is useful if you are using .leptos_routes_with_handler()
  • Returns an Axum Handler that listens for a GET request and tries to route it using leptos_router, serving an HTML stream of your application. It allows you to pass in a context function with additional info to be made available to the app The difference between calling this and render_app_to_stream_with_context() is that this one respects the SsrMode on each Route, and thus requires Vec<RouteListing> for route checking. This is useful if you are using .leptos_routes_with_handler().

Type Aliases§